package com.moli.iov.base.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.moli.iov.base.model.dto.req.VehicleFenceReqDto;
import com.moli.iov.base.model.dto.res.VehicleFenceResDto;
import com.moli.iov.base.model.po.VehicleFence;
import com.moli.iov.model.dto.req.PageExtend;
import com.moli.iov.rest.RestResponse;
import java.util.List;
import java.util.Set;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author wanghualin
 * @since 2019-09-03
 */
public interface IVehicleFenceService extends IService<VehicleFence> {

  /**
   *  添加车辆围栏
   * @param vehicleFence
   * @return
   */
  public RestResponse saveVehicleFence(VehicleFence vehicleFence);
  /**
   *  修改围栏车辆围栏
   * @param vehicleFence
   * @return
   */
  public RestResponse updateVehicleFence(VehicleFence vehicleFence);

  /**
   *  删除
   * @param vehicleFence
   * @return
   */
  public RestResponse deleteVehicleFence(VehicleFence vehicleFence);

  /**
   *  得到围栏
   * @param vehicleFenceId
   * @return
   */
  public VehicleFence getVehicleFence(Long vehicleFenceId);

  /**
   * 得到page
   *
   * @param dto
   */
  RestResponse<PageExtend<VehicleFenceResDto>>  listVehicleFence(VehicleFenceReqDto dto);



  /**
   * 报警服务专用
   * @param fenceIds
   * @return
   */
  List<VehicleFence> listVehicleFenceByIds(Set<Long> fenceIds);
  /**
   *
   * 得到所有的围栏
   * @return
   */
  List<VehicleFence> listVehicleFence();
  /**
   *
   * 得到所有的围栏 不走缓存
   * @return
   */
  List<VehicleFence> listVehicleFences();
  /**
   * 初始化 围栏
   */
  void initVehicleFence();

  /**
   *  op 查找围栏
   * @param fenId
   * @return
   */
  List<VehicleFence> listVehicleFenceByOpIds(List<Long>fenId,Long companyId);
}
